/*
 * Defines Position Class. Position is simply a row and column position on the Board
 * Includes operator overrides and comparisons for convenience of use
 */

#ifndef POSITION_H_
#define POSITION_H_

class Position{

private:
	int row,column;	//row and column positions

public:
	Position(int _x,int _y);				//Constructor
	Position(const Position &other);		//Copy Constructor
	~Position();							//Deconstructor
	Position& operator=(const Position& other);	//Operator overloads for ease of use
	const Position operator+(const Position& other);	//Creates position by adding row and column or other to this
	Position& operator+=(const Position& other);
	bool operator==(const Position &other);		//returns true if both columns and rows are equal
	bool operator>(const int num);				//returns true if row or column > num
	bool operator<(const int num);				//returns true if row or column < num
	bool operator>=(const int num);				//returns true if row or column >= num
	bool operator<=(const int num);				//returns true if row or column <= num
	int getRow();							//Returns row value
	int getColumn();						//Returns Column value

};

#endif /* POSITION_H_ */
